﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SW_SoftBully.Models.ModuloAdministracion.Edificio;
using SW_SoftBully.Models.ModuloServicios.ContratoPreventivo;
using SW_SoftBully.Models.ModuloAdministracion.Banco;
using SW_SoftBully.Models.ModuloAdministracion.DepartamentoPeru;
using SW_SoftBully.Models.ModuloAdministracion.ProvinciaPeru;
using SW_SoftBully.Models.ModuloAdministracion.DistritoPeru;
using SW_SoftBully.Models.ModuloAdministracion.Proveedor;
using SW_SoftBully.Models.ModuloAdministracion.AreaComun;
using SW_SoftBully.Models.ModuloAdministracion.Mantenible;

namespace SW_SoftBully.Controllers.ModuloServicio
{
    public class ContratoPreventivoController : Controller
    {
        //
        // GET: /ContratoPreventivo/
        EdificioFacade edificioFacade = new EdificioFacade();
        ContratoPreventivoDAO contratoPreventivoDAO = new ContratoPreventivoDAO();
        ProveedorDAO proveedorDAO = new ProveedorDAO();
        ProvinciaPeruDAO provinciaPeruDAO = new ProvinciaPeruDAO();
        BancoFacade bancoFacade = new BancoFacade();
        DepartamentoPeruFacade departamentoPeruFacade = new DepartamentoPeruFacade();
        DepartamentoPeruDAO departamentoPeruDAO = new DepartamentoPeruDAO();
        ProvinciaPeruFacade provinciaPeruFacade = new ProvinciaPeruFacade();
        DistritoPeruFacade distritoPeruFacade = new DistritoPeruFacade();
        AreaComunDAO areacomunDAO = new AreaComunDAO();
        MantenibleDAO mantenibleDAO = new MantenibleDAO();

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult ContratoPreventivo()
        {
            return View();
        }

        public ActionResult RegistrarContratoPreventivo()
        {
            return View();
        }

        public ActionResult BuscarContratoPreventivo()
        {
            return View();
        }
        //bien
        [HttpPost]
        public JsonResult cargarProveedores(ContratoPreventivoBean contrato)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + contrato.NombreMantenible);

            List<ContratoPreventivoBean> listaProveedores = contratoPreventivoDAO.ListarProveedores(contrato);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + contrato.conexion);

            return Json(new { listaProveedores });
        }

        //bien
        [HttpPost]
        public JsonResult buscarEdificio(EdificioBean edificio)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + edificio.Nombre);

            List<EdificioBean> listaEdificio = edificioFacade.Listaredificio(edificio);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + edificio.conexion);

            return Json(new { listaEdificio });
        }


        //bien
        [HttpPost]
        public JsonResult cargarEdificios(EdificioBean edificio)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + edificio.Nombre);

            List<EdificioBean> listaEdificio = edificioFacade.Listaredificio(edificio);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + edificio.conexion);

            return Json(new { listaEdificio });
        }

        //bien
        [HttpPost]
        public JsonResult TodosMisMantenibles(string nombremantenible)
        {
            List<ContratoPreventivoBean> listaTodosMisMantenibles = contratoPreventivoDAO.listaTodosMisMantenibles(nombremantenible);
            return Json(new { listaTodosMisMantenibles });
        }

        //bien
        [HttpPost]
        public JsonResult registrarContratoPreventivo(ContratoPreventivoBean contratoPreventivo)
        {
            ContratoPreventivoBean contrato = contratoPreventivoDAO.RegistrarContratoPreventivo(contratoPreventivo);

            //if (contrato.conexion == "Se ingreso correctamente el Contrato Preventivo")
            //{
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP controller> " + contrato.conexion);
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP controller> " + contrato.id_contrato_preventivo);
                return Json(new { contrato });
                //Console.WriteLine("Hola");
            //}
            //else
            //{
            //    if (contrato.conexion == "Existe un error en registrar Contrato Preventivo")
            //    {
            //        return Json(new { contrato });
            //    }
            //    else
            //    {
            //        System.Diagnostics.Debug.WriteLine("--------------------------------------________MIERDA> " + contratoPreventivo.conexion);
            //        return Json(new { contrato });
            //    }
            //}

        }

        //bien
        [HttpPost]
        public JsonResult cargarDepartamentos(DepartamentoPeruBean departamento)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + departamento.Nombre);

            List<DepartamentoPeruBean> listaDepartamentoPeru = departamentoPeruFacade.ListarDepartamentoPeru(departamento);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + departamento.conexion);

            return Json(new { listaDepartamentoPeru });
        }

        //bien
        [HttpPost]
        public JsonResult cargarProvincias(DepartamentoPeruBean departamento)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + departamento.Nombre);

            List<ProvinciaPeruBean> listaProvinciaPeru = provinciaPeruFacade.ListarProvinciaPeru(departamento);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + departamento.conexion);

            return Json(new { listaProvinciaPeru });
        }

        //bien
        [HttpPost]
        public JsonResult cargarDistritos(ProvinciaPeruBean provincia)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + provincia.Nombre);

            List<DistritoPeruBean> listaDistritoPeru = distritoPeruFacade.ListarDistritoPeru(provincia);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + provincia.conexion);

            return Json(new { listaDistritoPeru });
        }

        //bien
        [HttpPost]
        public JsonResult buscarProveedorContrato(ProveedorBean proveedor)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + proveedor.RazonSocial);

            List<ProveedorBean> listaProveedor = proveedorDAO.ListarProveedorMiguel(proveedor);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + proveedor.conexion);

            return Json(new { listaProveedor });
        }

        //bien
        [HttpPost]
        public JsonResult cargarDepartamentosProv(DepartamentoPeruBean departamento)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + departamento.Nombre);

            List<DepartamentoPeruBean> listaDepartamentoProv = departamentoPeruDAO.ListarDepartamentoProv(departamento);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + departamento.conexion);

            return Json(new { listaDepartamentoProv });
        }

        //bien
        [HttpPost]
        public JsonResult cargarProvinciasProv(DepartamentoPeruBean departamento)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + departamento.Nombre);

            List<ProvinciaPeruBean> listaProvinciaPeru = provinciaPeruDAO.ListarProvinciaProv(departamento);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + departamento.conexion);

            return Json(new { listaProvinciaPeru });
        }

        //bien
        [HttpPost]
        public JsonResult cargarSelectAreaComun(AreaComunBean areacomun)
        {
            List<AreaComunBean> listaAreaComun = areacomunDAO.ListarAreaComunCP(areacomun);
            return Json(new { listaAreaComun });
        }

        //bien
        [HttpPost]
        public JsonResult buscarMantenible(MantenibleBean mantenible)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + mantenible.Nombre);

            List<MantenibleBean> listaMantenible = mantenibleDAO.ListarMantenibleMiguel(mantenible);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + mantenible.conexion);

            return Json(new { listaMantenible });
        }

        //bien
        [HttpPost]
        public JsonResult buscarContratoPreventivo(ContratoPreventivoBean contratoPreventivo)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + contratoPreventivo.conexion);

            List<ContratoPreventivoBean> ListaContratoPreventivo = contratoPreventivoDAO.ListarContratoPreventivoBCP(contratoPreventivo);

            System.Diagnostics.Debug.WriteLine("--------------------------------------________MIERDA> " + contratoPreventivo.conexion);

            return Json(new { ListaContratoPreventivo });
        }

        //bien
        [HttpPost]
        public JsonResult modificarContratoPreventivo(ContratoPreventivoBean contratoPreventivo)
        {
            string conexion = contratoPreventivoDAO.modificarContrato(contratoPreventivo);

            if (conexion == "Bien")
            {
                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + contratoPreventivo.conexion);
                return Json(new { me = "Se modificó correctamente el " + contratoPreventivo.id_contrato_preventivo });
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + contratoPreventivo.conexion);
                return Json(new { me = conexion });
            }
        }
        
        //bien
        [HttpPost]
        public JsonResult verDetalleContrato(ContratoPreventivoBean contratoPreventivo)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + contratoPreventivo.conexion);

            List<ContratoPreventivoBean> ListaContratoPreventivo = contratoPreventivoDAO.ListarDetalleContratoPreventivoBCP(contratoPreventivo);

            System.Diagnostics.Debug.WriteLine("--------------------------------------________MIERDA> " + contratoPreventivo.conexion);

            return Json(new { ListaContratoPreventivo });
        }

        //bien
        [HttpPost]
        public JsonResult eliminarContratoPreventivo(ContratoPreventivoBean contratoPreventivo)
        {
            string conexion = contratoPreventivoDAO.eliminarContratoPreventivo(contratoPreventivo);

            if (conexion == "Bien")
            {
                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + contratoPreventivo.conexion);
                return Json(new { me = "Se eliminó correctamente + " + contratoPreventivo.id_contrato_preventivo });
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + contratoPreventivo.conexion);
                return Json(new { me = conexion });
            }
        }
    }
}
